1. Field of the Invention
Methods and apparatuses consistent with the present invention relate to transmitting and receiving a content stream, and more particularly, to transmitting and receiving content in a distributed storage system.
2. Description of the Related Art
The aim of a distributed storage technique is to bind a plurality of storages distributed in a network together and use the binding result as large logical storage. The distributed storage technique may be used for storage extension of a media server in a home and to increase the accessibility and availability of content in the home. The media server in the home provides users with content but it is difficult for users outside the home to access the media server. The distributed storage technique has been introduced to solve this problem. That is, if a user backs up content stored in the media server in a distributed storage, the user can acquire the content from the distributed storage even when the user is located outside the home or when the media server is powered off.
An example of related art, distributed storage techniques is a distributed hash table (DHT). DHT is a distributed storage technique technology to which a distributed hash mechanism is applied, whereby a user who knows a hash value can store data in and acquire data from a distributed storage as conveniently as in a local storage space. In particular, if the user stores data via a UNIX file system Application Program Interface (API), the data is divided into fragments and the fragments are evenly placed in storages, which constitute a distributed storage, according to DHT. If the user requests the data via the API, DHT allows the fragments to be located and combined into a piece of data according to a routing mechanism in the distributed storage.
Examples of DHT APIs include Get(key) for obtaining data using a hash key from a DHT, Put(key, value) for storing the hash key and the data in the DHT, Destroy(key) for deleting the hash key and the data from the DHT, Update(key, value) for updating the hash key and the data, Join(node) for joining a DHT distributed storage, and Leave(node) for leaving the DHT distributed storage. Examples of representative DHT-based distributed storage techniques are Tapestry, Chord, OceanStore, CAN, etc.
FIG. 1 is a diagram illustrating a related art, distributed storage system. Referring to FIG. 1, the system includes a user terminal 11, a distributed storage 13, and a media server 16.
The distributed storage 13 is comprised of a plurality of storages distributed in the Internet 12. The distributed storage 13 stores a copy 14 of content. Specifically, the copy 14 is stored in the storages constituting the distributed storage 13 in units of archival fragments 15. The locations of the archival fragments 15 of the copy 14 in the storages are determined according to the mechanism in the distributed storage 13.
Referring to FIG. 1, when the media server 16 is powered off, the user terminal 11 inside or outside a home can receive a copy 14 of the content from the distributed storage 13. Here, the copy 14 that the user terminal 11 receives is a sum of the archival fragments 15 stored in the corresponding storages of the distributed storage 13. That is, a piece of content is divided into several fragments and the fragments are separately stored in a plurality of locations, thereby increasing the overall usability of the distributed storage system, and the accessibility, usability, security and robustness of the content.
However, according to the related art distributed storage technique, the quality of content streaming is not uniform, since archival fragments of content are separately stored in a plurality of storages and the total number of storages available varies according to the content streaming state. That is, since nodes can freely join or leave a network in a distributed storage system, archival fragments placed in some nodes are probably not obtained regardless of a user's intention. That is, the related art, distributed storage technique cannot guarantee a stable content streaming service or the QoS (Quality of Service) thereof.
Further, few storages are available in the event of content streaming. Even available storages may perform many operations together with content streaming and thus limit resources for content streaming. In this case, a user receives a very low-quality content streaming service, and thus, the reliability of the content streaming service using a distributed storage is lowered.